﻿Imports System.Windows.Controls
Imports System.Windows.Input
Imports System.Windows

Public Class DashboardZone
    Inherits UIObject

    Private _Commands As New ObjectModel.ObservableCollection(Of DashboardZoneCommand)
    Private _Properties As New ObjectModel.ObservableCollection(Of DashboardZoneProperty)

    Public Overridable ReadOnly Property Commands As ObjectModel.ObservableCollection(Of DashboardZoneCommand)
        Get
            Return _Commands
        End Get
    End Property

    Public Overridable ReadOnly Property Properties As ObjectModel.ObservableCollection(Of DashboardZoneProperty)
        Get
            Return _Properties
        End Get
    End Property

    Public Overridable ReadOnly Property Visual As UIElement
        Get
            Return Nothing
        End Get
    End Property

    Public Overridable ReadOnly Property DataProperty As DashboardZoneProperty
        Get
            Return Nothing
        End Get
    End Property


    Protected Friend Overridable Sub OnValueChanged([Property] As DashboardZoneProperty)

    End Sub
    Protected Friend Overridable Sub OnCommandExecuted(pro As DashboardZoneCommand)

    End Sub
    Protected Friend Overridable Sub OnDataBindingChanged([Property] As DashboardZoneProperty)

    End Sub
    Protected Friend Overridable Sub OnDeserializeVisual(ByVal visual As UIElement)

    End Sub
    
End Class

Partial Public Class CalendarZone
    Inherits DashboardZone

    Dim _Visual As New Calendar

    Sub New()

        _Visual.SelectedDate = Now

        Me.Properties.Add(New DashboardZoneProperty(Me, "SelectedDate"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "SelectedDates"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "SelectionMode"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "BorderBrush"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "BorderThickness"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "Background"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "Foreground"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "FontFamily"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "FontSize"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "FontStretch"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "FontStyle"))
        'Me.Properties.Add(New DashboardZoneProperty(Me, "FontWeight"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "CalendarDayButtonStyle"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "CalendarItemStyle"))
        Me.Properties.Add(New DashboardZoneProperty(Me, "CalendarButtonStyle"))
    End Sub

    Public Overrides ReadOnly Property Visual As UIElement
        Get
            Return _Visual
        End Get
    End Property
End Class

